package com.smartcampusbackend.service;

import com.smartcampusbackend.model.ActivitySignup;
import com.smartcampusbackend.model.ActivitySignupDetail;
import java.util.List;

public interface ActivitySignupService {
    int signup(ActivitySignup signup);
    List<ActivitySignup> getSignupsByActivityId(Integer activityId);
    ActivitySignup getSignupById(Integer id);
    int approveSignup(Integer id, String status);
    List<ActivitySignup> getSignupsByPublisher(String publisher);
    int getApprovedSignupCount(Integer activityId);
    boolean canSignup(Integer activityId);
    boolean canApprove(Integer activityId);
    // 删除活动报名记录
    int deleteSignupsByActivityId(Integer activityId);
    // 获取我的报名活动
    List<ActivitySignup> getMySignups(String studentId);
    List<ActivitySignupDetail> getMySignupDetails(String studentId);
    
    // 根据用户ID获取报名活动
    List<ActivitySignup> getSignupsByUserId(Integer userId);
    List<ActivitySignupDetail> getSignupDetailsByUserId(Integer userId);
    
    // 获取待审批列表
    List<ActivitySignup> getPendingApprovals(Integer activityId);
    // 获取审批历史
    List<ActivitySignup> getApprovalHistory(Integer activityId);
    // 获取所有审批列表（包含状态筛选）
    List<ActivitySignup> getApprovalList(Integer activityId, String status);
    
    // 权限验证方法
    boolean canManageActivity(Integer activityId, String publisher);
} 